package one.stand.service;

import io.netty.channel.ChannelHandlerContext;
import one.stand.entity.TokenEntity;
import one.stand.entity.websocket.*;

/**
 * @author Administrator
 */
public interface UserChannelService {


    /**
     * 通道验证
     *
     * @param ctx
     */
    TokenEntity channelV(ChannelHandlerContext ctx, BaseSocketEntity baseSocketEntity);

    /**
     * 心跳检测
     *
     * @param ctx
     */
    void heartbeat(ChannelHandlerContext ctx,BaseSocketEntity baseSocketEntity);

    /**
     * 注册命令
     *
     * @param ctx
     * @param baseSocketEntity
     */
    void register(ChannelHandlerContext ctx, BaseSocketEntity baseSocketEntity);

    /**
     * 发送消息给指定用户
     * @param ctx
     * @param sendMessageEntity
     */
    void sendMessage(ChannelHandlerContext ctx, SendMessageEntity sendMessageEntity);

    /**
     * 已经读
     * @param ctx
     * @param seeMessageEntity
     */
    void seeMessage(ChannelHandlerContext ctx, SeeMessageEntity seeMessageEntity);


    /**
     * 获取消息
     * @param ctx
     * @param getMessageEntity
     */
    void getMessage(ChannelHandlerContext ctx, GetMessageEntity getMessageEntity);


    /**
     * 评论
     * @param ctx
     * @param dynamicReviewEntity
     */
    void dynamicReview(ChannelHandlerContext ctx, DynamicReviewEntity dynamicReviewEntity);

    /**
     * 点赞
     * @param ctx
     * @param dynamicFabulousEntity
     */
    void dynamicFabulous(ChannelHandlerContext ctx,DynamicFabulousEntity dynamicFabulousEntity);

    /**
     * 获取列表
     * @param ctx
     */
    void getImList(ChannelHandlerContext ctx,GetImListEntity getImListEntity);

    /**
     * 获取未独消息数量
     * @param ctx
     * @param getUnreadMessageNumEntity
     */
    void getUnreadMessageNum(ChannelHandlerContext ctx,GetUnreadMessageNumEntity getUnreadMessageNumEntity);
}
